Telegram Group & Telegram Channel
Решение технической задачи

Друзья, всем привет! 👋🏻

В понедельник мы выкладывали техническую задачу по оптимизации. Скажу по секрету, такие задачи задают на собеседовании в одном из крупных ритейлеров.

Итак, если посмотреть на план запроса, видно, что узкое место в том, что мы выгребаем из индекса 4 млн. записей, хотя архивная копия по размеру будет очень близка к исходной таблице (разница всего в 2 недели).

Какие можно дать рекомендации

1️⃣ Сбор статистики

Смотрим на статистику таблицы sales

SELECT stale_stats FROM user_tab_statistics WHERE table_name = 'SALES'


Если запрос вернет YES или <NULL> - статистика неактуальна, делаем

DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => USER, TABNAME =>  'SALES');


2️⃣ Управление индексом

Если статистика актуальна, а оптимизатор все равно считает, что нужен индекс, следует выполнить ALTER INDEX SALES_IDX INVISIBLE.

3️⃣ SQL Plan Management

Минус подхода с SQL Plan Management в том, что если вендор доработает запрос, наша «магия» с подменой плана исчезнет :( Но часто он помогает устранить "острую боль", когда нет возможности оперативно выпустить патч или исправить тормозящий запрос. Про этот подход мы более подробно рассказываем на нашем курсе по оптимизации. Там же есть куча вопросов с собеседований и тестовых заданий. Так что если вы хотите к ним лучше подготовиться - welcome

Ставь лайк, если ответил верно. Делитесь в комментариях, у кого еще Index Range Scan тормозил прод.

#oracle #оптимизация #задача #оптимизация #performance #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/oracle_dbd/900
Create:
Last Update:

Решение технической задачи

Друзья, всем привет! 👋🏻

В понедельник мы выкладывали техническую задачу по оптимизации. Скажу по секрету, такие задачи задают на собеседовании в одном из крупных ритейлеров.

Итак, если посмотреть на план запроса, видно, что узкое место в том, что мы выгребаем из индекса 4 млн. записей, хотя архивная копия по размеру будет очень близка к исходной таблице (разница всего в 2 недели).

Какие можно дать рекомендации

1️⃣ Сбор статистики

Смотрим на статистику таблицы sales

SELECT stale_stats FROM user_tab_statistics WHERE table_name = 'SALES'


Если запрос вернет YES или <NULL> - статистика неактуальна, делаем

DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => USER, TABNAME =>  'SALES');


2️⃣ Управление индексом

Если статистика актуальна, а оптимизатор все равно считает, что нужен индекс, следует выполнить ALTER INDEX SALES_IDX INVISIBLE.

3️⃣ SQL Plan Management

Минус подхода с SQL Plan Management в том, что если вендор доработает запрос, наша «магия» с подменой плана исчезнет :( Но часто он помогает устранить "острую боль", когда нет возможности оперативно выпустить патч или исправить тормозящий запрос. Про этот подход мы более подробно рассказываем на нашем курсе по оптимизации. Там же есть куча вопросов с собеседований и тестовых заданий. Так что если вы хотите к ним лучше подготовиться - welcome

Ставь лайк, если ответил верно. Делитесь в комментариях, у кого еще Index Range Scan тормозил прод.

#oracle #оптимизация #задача #оптимизация #performance #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

BY Oracle Developer👨🏻‍💻




Share with your friend now:
tg-me.com/oracle_dbd/900

View MORE
Open in Telegram


Oracle Developer‍ Telegram | DID YOU KNOW?

Date: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

Oracle Developer‍ from ms


Telegram Oracle Developer👨🏻‍💻
FROM USA